/**
 * @ClassName LC400
 * @Author ykx
 * @Date 2024/3/25 14:06
 * @Version 1.0
 */
public class LC400 {
    public static void main(String[] args) {
        LC400 lc400 = new LC400();
        System.out.println(lc400.findNthDigit(30));
    }

    public int findNthDigit(int n) {
        int start = 1;
        int end = 9;
        int digit = 1;
        while (n > end * digit) {
            n -= end * digit;
            digit++;
            start *= 10;
            end *= 10;
        }
        // 剩下的n就是求[start, end]区间的第n位
        // 从坐标0开始，因此要(n - 1)
        // (n - 1) / digit是求最区间内的偏移量（具体的数字）
        int num = start + (n - 1) / digit;
        String s = num + "";
        return s.charAt((n - 1) % digit) - '0';
    }
}
